// 以普通函数形式调用Object函数将原始值包裹到其相应包装类的实例中

// 用来存储原始值
let primitive;
// 用来记录包裹了原始值的实例
let wrapper;

primitive = 100;
console.log( primitive, typeof primitive );
// 用Object函数将 number 类型的原始值包裹到 Number类的一个实例中
wrapper = Object(primitive);
console.log( wrapper , typeof wrapper );
// 取得 Number实例内部所包裹的原始值
let value = wrapper.valueOf();
console.log( value, typeof value );

console.log( '- '.repeat(20) );

primitive = 'afang';
console.log( primitive, typeof primitive );
// 用Object函数将 string 类型的原始值包裹到 String类的一个实例中
wrapper = Object( primitive );
console.log( wrapper , typeof wrapper );
// 取得 String实例内部所包裹的原始值
value = wrapper.valueOf();
console.log( value, typeof value );

console.log( '- '.repeat(20) );

primitive = true;
console.log( primitive, typeof primitive );
// 用Object函数将 boolean 类型的原始值包裹到 Boolean类的一个实例中
wrapper = Object( primitive );
console.log( wrapper , typeof wrapper );
// 取得 Boolean实例内部所包裹的原始值
value = wrapper.valueOf();
console.log( value, typeof value );

console.log( '- '.repeat(20) );

primitive = 12345n;
console.log( primitive, typeof primitive );
// 用Object函数将 bigint 类型的原始值包裹到 BigInt类的一个实例中
wrapper = Object( primitive );
console.log( wrapper , typeof wrapper );
// 取得 BigInt实例内部所包裹的原始值
value = wrapper.valueOf();
console.log( value, typeof value );

console.log( '- '.repeat(20) );

primitive = Symbol('1250');
console.log( primitive, typeof primitive );
// 用Object函数将 symbol 类型的原始值包裹到 Symbol类的一个实例中
wrapper = Object( primitive );
console.log( wrapper , typeof wrapper );
// 取得 Symbol实例内部所包裹的原始值
value = wrapper.valueOf();
console.log( value, typeof value );
